#ifndef CONCRETESUBJECT_H
#define CONCRETESUBJECT_H

#include "Subject/subject.h"
#include <iostream>
#include <list>
using namespace std;

class ConcreteSubject : public Subject
{
public:
    ConcreteSubject();
    ~ConcreteSubject();

private:
    list<Observer *> m_List;
    int m_state;

public:
    void attach(Observer *obj);
    void detach(Observer *obj);
    void notify();
    void setState(int state);
    int getState();
};

#endif // CONCRETESUBJECT_H
